package com.blueocean_health.care.management.domain.base;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.alibaba.fastjson.annotation.JSONField;
import com.blueocean_health.care.management.common.base.em.TimeType;
import com.blueocean_health.care.management.common.base.string.StringUtils;
import com.blueocean_health.care.management.common.base.time.TimeUtils;

@Table(name = "order_charge_info")
public class OrderChargeInfo {
    /**
     * id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    /**
     * hospitalID
     */
    @Column(name = "hospital_id")
    private String hospitalId;

    /**
     * 订单ID
     */
    @Column(name = "order_id")
    private String orderId;

    /**
     * 收款、续费、退费
     */
    @Column(name = "fee_type")
    private String feeType;

   

    /**
     * 收费方式Id.
     */
    @Column(name = "trans_type")
    private String transType;

    
    /**
     * 收据编号
     */
    @Column(name = "receipt_number")
    private String receiptNumber;

    /**
     * 费用金额
     */
    private Double amount;

    /**
     * 费用购买的开始服务时间
     */
    @Column(name = "begin_time")
    private Date beginTime;
    
    /**
     * 开据日期
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "billing_time")
    private Date billingTime;

    /**
     * 费用购买的结束时间
     */
    @Column(name = "end_time")
    private Date endTime;

    /**
     * 负责人
     */
    private String manager;

    /**
     * 版本
     */
    private Integer version;

    /**
     * 备注
     */
    private String bak;

    /**
     * 单据发生的时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date time;

    /**
     * 修改时间
     */
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 逻辑状态
     */
    @Column(name = "is_active")
    private Integer isActive;
    /**
     * 签单人id
     */
    @Column(name = "user_id")
    private String userId;
    
    
    /**
     * 患者签收日期
     */
    @Column(name = "patient_sign_date")
    private Date patientSignDate;
   /** 
    * 签收人
    */
   @Column(name = "patient_sign")
   private String patientSign;
   /** 
    * 退款是关联订单明细
    */
   @Column(name = "service_id")
   private String serviceId;
   /** 
    * 退款是关联订单明细
    */
   @Column(name = "service_order_time")
   private String serviceOrderTime;
    
    public String getUserId() {
	return userId;
}
public void setUserId(String userId) {
	this.userId = userId;
}
	public String getServiceId() {
	return serviceId;
}
public void setServiceId(String serviceId) {
	this.serviceId = serviceId;
}
public String getServiceOrderTime() {
	return serviceOrderTime;
}
public void setServiceOrderTime(String serviceOrderTime) {
	this.serviceOrderTime = serviceOrderTime;
}
	public String getPatientSign() {
	return patientSign;
}
public void setPatientSign(String patientSign) {
	this.patientSign = patientSign;
}
	public Date getPatientSignDate() {
		return patientSignDate;
	}
	public void setPatientSignDate(Date patientSignDate) {
		this.patientSignDate = patientSignDate;
	}
	/**
     * 获取id
     *
     * @return id - id
     */
    public Integer getId() {
        return id;
    }
    public Date getBillingTime() {
//    	if(StringUtils.isEmpty(billingTime)){
//    		return null;
//    	}
//		return TimeUtils.getStringByDate(billingTime, TimeType.yyyy_MM_dd);
    	return billingTime;
	}

	public void setBillingTime(Date billingTime) {
		this.billingTime = billingTime;
	}

	/**
     * 设置id
     *
     * @param id id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取订单ID
     *
     * @return order_id - 订单ID
     */
    public String getOrderId() {
        return orderId;
    }

    /**
     * 设置订单ID
     *
     * @param orderId 订单ID
     */
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    /**
     * 获取收款、续费、退费
     *
     * @return fee_type - 收款、续费、退费
     */
    public String getFeeType() {
        return feeType;
    }
    
    public String getHospitalId() {
		return hospitalId;
	}

	public void setHospitalId(String hospitalId) {
		this.hospitalId = hospitalId;
	}

	/**
     * 设置收款、续费、退费
     *
     * @param feeType 收款、续费、退费
     */
    public void setFeeType(String feeType) {
        this.feeType = feeType;
    }

   
    /**
     * 获取收费方式Id.
     *
     * @return trans_type - 收费方式Id.
     */
    public String getTransType() {
        return transType;
    }

    /**
     * 设置收费方式Id.
     *
     * @param transType 收费方式Id.
     */
    public void setTransType(String transType) {
        this.transType = transType;
    }

 
    /**
     * 获取收据编号
     *
     * @return receipt_number - 收据编号
     */
    public String getReceiptNumber() {
        return receiptNumber;
    }

    /**
     * 设置收据编号
     *
     * @param receiptNumber 收据编号
     */
    public void setReceiptNumber(String receiptNumber) {
        this.receiptNumber = receiptNumber;
    }

    /**
     * 获取费用金额
     *
     * @return amount - 费用金额
     */
    public Double getAmount() {
        return amount;
    }

    /**
     * 设置费用金额
     *
     * @param amount 费用金额
     */
    public void setAmount(Double amount) {
        this.amount = amount;
    }

 

    public Date getBeginTime() {
		return beginTime;
	}

	public void setBeginTime(Date beginTime) {
		this.beginTime = beginTime;
	}

	/**
     * 获取费用购买的结束时间
     *
     * @return end_time - 费用购买的结束时间
     */
    public Date getEndTime() {
        return endTime;
    }

    /**
     * 设置费用购买的结束时间
     *
     * @param endTime 费用购买的结束时间
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    /**
     * 获取负责人
     *
     * @return manager - 负责人
     */
    public String getManager() {
        return manager;
    }

    /**
     * 设置负责人
     *
     * @param manager 负责人
     */
    public void setManager(String manager) {
        this.manager = manager;
    }

    /**
     * 获取版本
     *
     * @return version - 版本
     */
    public Integer getVersion() {
        return version;
    }

    /**
     * 设置版本
     *
     * @param version 版本
     */
    public void setVersion(Integer version) {
        this.version = version;
    }

    /**
     * 获取备注
     *
     * @return bak - 备注
     */
    public String getBak() {
        return bak;
    }

    /**
     * 设置备注
     *
     * @param bak 备注
     */
    public void setBak(String bak) {
        this.bak = bak;
    }

    /**
     * 获取单据发生的时间
     *
     * @return time - 单据发生的时间
     */
    public Date getTime() {
        return time;
    }

    /**
     * 设置单据发生的时间
     *
     * @param time 单据发生的时间
     */
    public void setTime(Date time) {
        this.time = time;
    }

    /**
     * 获取修改时间
     *
     * @return update_time - 修改时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置修改时间
     *
     * @param updateTime 修改时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取逻辑状态
     *
     * @return is_active - 逻辑状态
     */
    public Integer getIsActive() {
        return isActive;
    }

    /**
     * 设置逻辑状态
     *
     * @param isActive 逻辑状态
     */
    public void setIsActive(Integer isActive) {
        this.isActive = isActive;
    }
}